package com.dhcc.bpm.modules.orga.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;

import java.util.Date;

/**
 * @ClassName ProduceApply
 * @Description 测试申请审批表实体类
 * @Author daina
 * @Date 2020/2/24 19:25
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
@Data
@TableName("opc_produce_apply")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ProduceApply对象", description = "测试申请审批表")
public class ProduceApply extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	* 机构ID (关联opc_orga表ID)
	*/
	    @JsonSerialize(
			using = ToStringSerializer.class,
			nullsUsing = NullSerializer.class
	    )
		@ApiModelProperty(value = "机构ID (关联opc_orga表ID)")
		private Long orgaId;
	/**
	* 渠道ID (关联opc_app表ID)
	*/
	    @JsonSerialize(
			using = ToStringSerializer.class,
			nullsUsing = NullSerializer.class
	    )
		@ApiModelProperty(value = "渠道ID (关联opc_app表ID)")
		private Long appId;
	/**
	* 申请生产环境测试开始时间
	*/
		@ApiModelProperty(value = "申请生产环境测试开始时间")
		private Date testBeginTime;
	/**
	* 申请生产 环境测试结束时间
	*/
		@ApiModelProperty(value = "申请生产 环境测试结束时间")
		private Date testEndTime;
	/**
	* 测试类型
	*/
		@ApiModelProperty(value = "测试类型")
		private String testType;
	/**
	* 申请说明
	*/
		@ApiModelProperty(value = "申请说明")
		private String applyMsg;
	/**
	* 签名算法
	*/
		@ApiModelProperty(value = "签名算法")
		private String signAlg;
	/**
	* 审批人员
	*/
		@ApiModelProperty(value = "审批人员")
		private String approveOfficer;
	/**
	* 审批时间
	*/
		@ApiModelProperty(value = "审批时间")
		private Date approveTime;
	/**
	* 审批状态
	*/
		@ApiModelProperty(value = "审批状态")
		private String approveStatus;
	/**
	* 审批意见
	*/
		@ApiModelProperty(value = "审批意见")
		private String approveOpinion;
	/**
	* 描述
	*/
		@ApiModelProperty(value = "描述")
		@TableField(value = "`describe`")
		private String describe;
		/**
		 * 用户申请流量
		 */
		@ApiModelProperty(value = "用户申请流量")
		private String currentLimit;
	/**
	 * 申请流量
	 */
	@ApiModelProperty(value = "申请流量")
	private String applyFlow;
	/**
	 * 管理员批准流量
	 */
		@ApiModelProperty(value = "管理员批准流量")
		private String approvalFlow;
	/**
	 * 流量周期
	 */
		@ApiModelProperty(value = "流量周期")
		private String flowCycle;
	/**
	 * 访问策略枚举值
	 */
		@ApiModelProperty(value = "访问策略枚举值(1:访问频率 2：访问次数)")
		private String accessPolicy;
//		/**
//		 * 访问次数
//		 */
//		@ApiModelProperty(value = "访问次数")
//		@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
//		private long accessNum;
		/**
		 * 并发数
		 */
		@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
		@ApiModelProperty(value = "并发数")
		private Long applyQps;
		/**
		 * 用户申请每日访问量
		 */
		@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
		@ApiModelProperty(value = "用户申请每日访问量")
		private Long approvalQps;
		/**
		 * 支付账号
		 */
		@ApiModelProperty(value = "支付账号")
		private String payAccount;
		/**
		 * ip地址
		 */
		@ApiModelProperty(value = "ip地址")
		private String ip;
	/**
	 * 开始时间新
	 */
	@ApiModelProperty(value = "开始时间新")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date BeginTimeNew;
	/**
	 * 结束时间
	 */
	@ApiModelProperty(value = "结束时间")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date EndTimeNew;

	/**
	 * 用户公钥
	 */
	@ApiModelProperty(value = "用户公钥")
	private String userPublicKey;

	/**
	 * 导出数据标识
	 */
	@ApiModelProperty(value = "导出数据标识")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private String expSeq;
	/**
	 * 父id
	 */
	@ApiModelProperty(value = "父id")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private String pid;
	/**
	 * 变更状态 0待审批   1通过  2未通过0：不可变更， 1：可变更
	 */
	@ApiModelProperty(value = "变更状态")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private String changeStatus;
	/**
	 * 变更状态 0：不可变更， 1：可变更
	 */
	@ApiModelProperty(value = "可变更状态")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private String isChange;
}
